import java.util.Scanner;
import java.util.ArrayList;

public class Hotel {
        
	private String nombre;
	private String direccion;
	private String poblacion;
	private String provincia;
	private String pais;
	private Integer num_estrellas;
	private static ControladorHotel controlador = new  ControladorHotel();
    private static int c=0;

	
	public String getNombre(){
		return this.nombre;
		}
		
	public String getDireccion(){
		return this.direccion;
		}

	public String getPoblacion(){
		return this.poblacion;
		}
	
	public String getProvincia(){
		return this.provincia;
		}
		
	public String getPais(){
		return this.pais;
		}
		
	public Integer getNum_estrellas(){
		return this.num_estrellas;
		}
	
	public void setNombre(String nombre){
		this.nombre=nombre;
	}

	public void setDireccion(String direccion){
		this.direccion=direccion;
	}
	
	public void setPoblacion(String poblacion){
		this.poblacion=poblacion;
	}
	
	public void setProvincia(String provincia){
		this.provincia=provincia;
	}
	
	public void setPais(String pais){
		this.pais=pais;
	}
	
	public void setNum_estrellas(Integer num_estrellas){
		this.num_estrellas=num_estrellas;
	}
	
	Hotel(){
	}
	
	Hotel(String nombre, String direccion, String poblacion, String provincia, String pais, Integer num_estrellas){
		this.nombre=nombre;
		this.direccion=direccion;
		this.poblacion=poblacion;
		this.provincia=provincia;
		this.pais=pais;
		this.num_estrellas=num_estrellas;
	}

	public static void CrearHotel(){
		String nombre;
		String direccion;
		String poblacion;
		String provincia;
		String pais;
		Integer num_estrellas;
		Boolean iguales=false;
		String SiyNo;
		Scanner leer = new Scanner(System.in);
		Scanner leer_ = new Scanner(System.in);


		System.out.print ("Introduzca el nombre del hotel: ");
		nombre=leer.nextLine();

		System.out.print ("Introduzca la direccion del hotel: ");
		direccion=leer.nextLine();

		System.out.print ("Introduzca la poblacion del hotel: ");
		poblacion=leer.nextLine();

		System.out.print ("Introduzca la provincia donde esta ubicado el hotel: ");
		provincia=leer.nextLine();

		System.out.print ("Introduzca el pais donde esta ubicado el hotel: ");
		pais=leer.nextLine();

		System.out.print ("Introduzca el numero de estrellas del hotel: ");
		num_estrellas=leer.nextInt();

		if(c==0){
			System.out.print ("No hay ningun hotel registrado con los datos introducidos, ¿Desea registrarlo? (Si/No): ");
			SiyNo=leer_.nextLine();
			if(SiyNo.equals("Si") || SiyNo.equals("SI") || SiyNo.equals("si")){
				Hotel hotel = new Hotel(nombre, direccion, poblacion, provincia, pais, num_estrellas);
				controlador.adicionarHotel(hotel);//	HotelesRegistrados.add(hotel);
				System.out.println("Usted acaba de crear el hotel.");
				c++;
			}
			else System.out.println("Usted acaba de cancelar la creacion del hotel.");
		}
		else{
			
			for(int i=0; i<controlador.tamaño(); i++){
				Hotel hotel=(Hotel)controlador.getHotel(i);
				if (direccion.equals(hotel.getDireccion())){
				iguales=true;
				}
			}
	
			if(iguales!=true){
				System.out.print ("No hay ningun hotel registrado con los datos introducidos, ¿Desea registrarlo? (Si/No): ");
				SiyNo=leer_.nextLine();
				if(SiyNo.equals("Si") || SiyNo.equals("SI") || SiyNo.equals("si")){
					Hotel hotel = new Hotel(nombre, direccion, poblacion, provincia, pais, num_estrellas);
					controlador.adicionarHotel(hotel);//	HotelesRegistrados.add(hotel);
					System.out.println ("Usted acaba de crear el hotel.");
				}
				else System.out.println("Usted acaba de cancelar la creacion del hotel.");
			}
			else System.out.println ("Ya hay un hotel registrado con los datos introducidos.");
		}
}

	public static void EliminarHotel(){
		String nombre;
		String direccion;
		String poblacion;
		String provincia;
		String pais;
		Integer num_estrellas;
		String SiyNo;
		Boolean existe=false;
		Scanner leer = new Scanner(System.in);
		
		System.out.print ("Introduzca el nombre del hotel que desea eliminar: ");
		nombre=leer.nextLine();
		System.out.print ("Introduzca la direccion del hotel que desea eliminar: ");
		direccion=leer.nextLine();
	
		for(int i=0; i<controlador.tamaño(); i++){	
			Hotel hotel=(Hotel)controlador.getHotel(i);
			if (nombre.equals(hotel.getNombre()) && direccion.equals(hotel.getDireccion())){
				
				System.out.println ("Nombre del hotel: " + hotel.getNombre() +
					"\nDireccion del hotel: " + hotel.getDireccion() +
						 "\nPoblacion del Hotel: " + hotel.getPoblacion() +
						 	"\nProvincia donde esta ubicado el hotel: " + hotel.getProvincia() +
						 		"\nPais donde esta ubicado el hotel: " + hotel.getPais() +
						 			"\nNumero de estrellas del hotel: " + hotel.getNum_estrellas());
	
				existe=true;
				
				System.out.print("¿Esta seguro que desea eliminar el hotel? (Si/No): ");
				SiyNo=leer.nextLine();
				
	
				if(SiyNo.equals("Si") || SiyNo.equals("SI") || SiyNo.equals("si")){
					controlador.eliminarHotel(i); //	HotelesRegistrados.remove(i);
					System.out.println("Usted acaba de eliminar el hotel.");
				}
				else System.out.println("Usted acaba de cancelar la eliminacion del hotel.");
			}
		}
		
		if (existe == false)
			System.out.println ("No hay un hotel registrado con los datos introducidos.");
	}	
	

	public static void ModificarHotel(){
		String nombre;
		String direccion;
		String poblacion;
		String provincia;
		String pais;
		Integer num_estrellas;
		Boolean iguales;
		String SiyNo;
		Integer editar;
		Boolean existe=false;
		Scanner leer = new Scanner(System.in);
		Scanner leer_ = new Scanner(System.in);

		System.out.print ("Introduzca el nombre del hotel que desea modificar: ");
		nombre=leer.nextLine();
		System.out.print ("Introduzca la direccion del hotel que desea modificar: ");
		direccion=leer.nextLine();
		

		for(int i=0; i<controlador.tamaño(); i++){
			Hotel hotel=(Hotel)controlador.getHotel(i);
			poblacion=hotel.getDireccion();
			provincia=hotel.getProvincia();
			pais=hotel.getPais();
			num_estrellas=hotel.getNum_estrellas();
			if (nombre.equals(hotel.getNombre()) && direccion.equals(hotel.getDireccion())){
				editar=i;
				System.out.println ("Nombre del hotel: " + hotel.getNombre() +
					"\nDireccion del hotel: " + hotel.getDireccion() +
						 "\nPoblacion del Hotel: " + hotel.getPoblacion() +
						 	"\nProvincia donde esta ubicado el hotel: " + hotel.getProvincia() +
						 		"\nPais donde esta ubicado el hotel: " + hotel.getPais() +
						 			"\nNumero de estrellas del hotel: " + hotel.getNum_estrellas());


			existe=true;
			
				System.out.print ("¿Desea modificar el nombre del hotel? (Si/No):");
				SiyNo=leer.nextLine();
				if(SiyNo.equals("Si") || SiyNo.equals("SI") || SiyNo.equals("si")){
					System.out.print ("Ingrese el nuevo nombre del hotel: ");
					nombre=leer.nextLine();
				}

				System.out.print ("¿Desea modificar la direccion del hotel? (Si/No):");
				SiyNo=leer.nextLine();
				if(SiyNo.equals("Si") || SiyNo.equals("SI") || SiyNo.equals("si")){
					System.out.print ("Ingrese la nueva direccion del hotel: ");
					direccion=leer.nextLine();
				}
		
				System.out.print ("¿Desea modificar la poblacion del hotel? (Si/No): ");
				SiyNo=leer.nextLine();
				if(SiyNo.equals("Si") || SiyNo.equals("SI") || SiyNo.equals("si")){
					System.out.print ("Ingrese la nueva poblacion del hotel: ");
					poblacion=leer.nextLine();
				}

				System.out.print ("¿Desea modificar la provincia donde esta ubicado el hotel? (Si/No):");
				SiyNo=leer.nextLine();
				if(SiyNo.equals("Si") || SiyNo.equals("SI") || SiyNo.equals("si")){
					System.out.print ("Ingrese la nueva poblacion del hotel: ");
					provincia=leer.nextLine();
				}

				System.out.print ("¿Desea modificar el pais donde esta ubicado el hotel? (Si/No): ");
				SiyNo=leer.nextLine();
				if(SiyNo.equals("Si") || SiyNo.equals("SI") || SiyNo.equals("si")){
					System.out.print ("Ingrese el nuevo pais del hotel: ");
					pais=leer.nextLine();
				}

				System.out.print ("¿Desea modificar el numero de estrellas del hotel? (Si/No): ");
				SiyNo=leer.nextLine();
				if(SiyNo.equals("Si") || SiyNo.equals("SI") || SiyNo.equals("si")){
					System.out.print ("Ingrese el nuevo numero de estrellas del hotel: ");
					num_estrellas=leer.nextInt();
				}

				System.out.print ("¿Desea aceptar la actualizacion? (Si/No): ");
				SiyNo=leer_.nextLine();
		
				if(SiyNo.equals("Si") || SiyNo.equals("SI") || SiyNo.equals("si")){
					hotel.setNombre(nombre);
					hotel.setDireccion(direccion);
					hotel.setPoblacion(poblacion);
					hotel.setProvincia(provincia);
					hotel.setPais(pais);
					hotel.setNum_estrellas(num_estrellas);
				}
			}
		}
		if(existe == false)
			System.out.println ("No hay un hotel registrado con los datos introducidos.");
	}
	
	
	public static void ConsultarHotel(){
		String nombre;
		String direccion;
		String poblacion;
		String provincia;
		String pais;
		Integer num_estrellas;
		String SiyNo;		
		Scanner leer = new Scanner(System.in);
		Boolean vacio = controlador.isEmpty();
		
		System.out.print("¿Desea ver los hoteles? (Si/No): ");
		SiyNo=leer.nextLine();
		if (vacio == true) System.out.println("No hay hoteles registrados. ");
		else{
			if(SiyNo.equals("Si") || SiyNo.equals("SI") || SiyNo.equals("si")){
				for(int i=0; i<controlador.tamaño(); i++){
					Hotel hotel=(Hotel)controlador.getHotel(i);
					System.out.println ("Nombre del hotel: " + hotel.getNombre() +
						"\nDireccion del hotel: " + hotel.getDireccion() +
							 "\nPoblacion del Hotel: " + hotel.getPoblacion() +
							 	"\nProvincia donde esta ubicado el hotel: " + hotel.getProvincia() +
							 		"\nPais donde esta ubicado el hotel: " + hotel.getPais() +
							 			"\nNumero de estrellas del hotel: " + hotel.getNum_estrellas());
				}
			}
			else System.out.println("Usted acaba de cancelar la consulta del hotel. ");
		}
	}
}


